package visualizacao;

import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.util.ArrayList;

import modelo.Desenhavel;
import modelo.FiguraGeometrica;
import modelo.Ponto;


import controle.Controlador;




public class PanelDesenho extends javax.swing.JPanel{

	private ArrayList<Desenhavel> listaDeEixos = null;
	private ArrayList<Desenhavel> listaDeFiguras = null;

	public PanelDesenho(){
		listaDeEixos = new ArrayList<Desenhavel>();
		listaDeFiguras = new ArrayList<Desenhavel>();
	}

	public void paint(Graphics g){
		if(listaDeEixos != null){
			for(Desenhavel f : listaDeEixos){
				((FiguraGeometrica)f).plotar(g);
			}
		}

		if(listaDeFiguras != null){
			for(Desenhavel f : listaDeFiguras){
				((FiguraGeometrica)f).plotar(g);
			}
		}
	}

	/**Limpa a tela. Apaga tudo que está desenhado no painel*/
	public void limparTela(Graphics g){
		g.clearRect(0, 0, this.getWidth(), this.getHeight());		
	}

	public void adicionaEixos(ArrayList eixos){
		this.listaDeEixos.addAll(eixos);
	}
	
	public void removeEixos(){
		this.listaDeEixos = new ArrayList<Desenhavel>();
	}
	
	public void adicionaDesenho(Desenhavel figura){
		this.listaDeFiguras.add(figura);
	}
	
	public void adicionaDesenho(ArrayList listaFiguras){
		this.listaDeFiguras.addAll(listaFiguras);
	}
	
	public void removeDesenho() {
		this.listaDeFiguras = new ArrayList<Desenhavel>();
	}

	public void setListaDeEixos(ArrayList listaDeEixos) {
		this.listaDeEixos = listaDeEixos;
	}

	public void setListaDeFiguras(ArrayList listaDeFiguras) {
		this.listaDeFiguras = listaDeFiguras;
	}

	public ArrayList<Desenhavel> getListaDeEixos() {
		return listaDeEixos;
	}

	public ArrayList<Desenhavel> getListaDeFiguras() {
		return listaDeFiguras;
	}	
}
